package com.zdf.license.web.listener;

import com.zdf.license.verify.listener.ACustomVerifyListener;
import com.zdf.license.verify.listener.ParamType;
import org.springframework.stereotype.Component;

/**
 * 当类注入到springboot中时候，初始化时自动将实例保存在了父类，
 * 每次启动校验父类都会调用 verify(LicenseExtraParam licenseExtra)
 */
@Component
public class UserNumVerifyListener extends ACustomVerifyListener<Integer> {

    /**
     * ParamType 在生成证书与回显证书信息时候非常有用
     */
    @Override
    public ParamType paramType() {
        return new ParamType("userNum", "用户数量", Integer.class);
    }

    /**
     * 校验用户数量是否超出证书限制
     */
    @Override
    protected boolean verify(Integer custom, Integer userNum){
        return userNum <= custom;
    }

    @Override
    protected Integer typeConversion(Object custom) {
        return Integer.valueOf(custom.toString());
    }
}
